// 统计文件中的字符、单词和行数
#include <head.h>
void count_file(char *fiel_name);

int main(int argc, char const *argv[])
{
    count_file("hello.txt");
    return 0;
}

void count_file(char *fiel_name)
{
    int bytes = 0; // 统计字符数
    int words = 0; // 统计单词
    int line = 0;  // 统计行数
    char ch = 0;   // 缓冲区
    // 打开文件
    int fd = open(fiel_name, O_RDONLY);
    if (EOF == fd)
    {
        perror("open error:");
        return;
    }
    // 移动到开头
    lseek(fd, 0, SEEK_SET);
    // 一次遍历一个字符
    while ((bytes = read(fd, &ch, sizeof(ch))) > 0)
    {
        // 记录行数
        if (ch == '\n')
        {
            line++;
        }
        // 记录单词个数
        else if (ch == ' ')
        {
            words++;
        }
    }
    // 统计字符个数
    bytes = lseek(fd, 0, SEEK_END);
    // 关闭文件
    close(fd);
    printf("%s 中共有 %d 个字符, %d 个单词, %d 行\n", fiel_name, bytes, words, line);
    return;
}
